core: Call fdatasync() before we rename()
authorColin Walters <walters@verbum.org>
Sun, 14 Oct 2012 19:34:33 +0000 (15:34 -0400)
committerColin Walters <walters@verbum.org>
Sun, 14 Oct 2012 19:34:33 +0000 (15:34 -0400)
Just noticed this from strace, doesn't really matter, but looks nicer.

src/libostree/ostree-repo.c

index 020a595507bcc0ac33fd405689655c72fabba071..4033f296f145a25d1b31a5aaa1828ec6e1bf9907 100644 (file)
@@ -3171,6 +3171,12 @@ checkout_file_from_input (GFile          *file,
                                                    cancellable, error))
             goto out;
 
+          if (g_file_info_get_file_type (temp_info) == G_FILE_TYPE_REGULAR)
+            {
+              if (!ensure_file_data_synced (temp_file, cancellable, error))
+                goto out;
+            }
+
           if (rename (ot_gfile_get_path_cached (temp_file), ot_gfile_get_path_cached (file)) < 0)
             {
               ot_util_set_error_from_errno (error, errno);
@@ -3183,12 +3189,12 @@ checkout_file_from_input (GFile          *file,
       if (!ostree_create_file_from_input (file, temp_info,
                                           xattrs, input, cancellable, error))
         goto out;
-    }
 
-  if (g_file_info_get_file_type (temp_info) == G_FILE_TYPE_REGULAR)
-    {
-      if (!ensure_file_data_synced (file, cancellable, error))
-        goto out;
+      if (g_file_info_get_file_type (temp_info) == G_FILE_TYPE_REGULAR)
+        {
+          if (!ensure_file_data_synced (temp_file, cancellable, error))
+            goto out;
+        }
     }
 
   ret = TRUE;